/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package hcc.app;

import hcc.GUI.MainWindow;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.JTable;

/**
 *
 * @author Guybrush
 */
public class CORE {

    Connection con;
    public Sql sql = null;
    public boolean dbload = false;
    private String luser = null; //Login User
    private String lpwd = null; //Login Password
    public String adb = null; //Active Database

    //Tabellennamen
    public ArrayList<String> tabNames = new ArrayList<String>();

    //Tabellen mit Daten
    public ArrayList<JTable> tables = new ArrayList<JTable>();

    //Für Tabelleneintragsänderungen
    public int tabFocus = 0; //Indexnummer der derzeitig angewählten Tabelle
    public String tabNameFocus = null; //Name der derzeitig angewählten Tabelle
    public String colName = null; //Name der Spalte, in der Änderungen durchgeführt wurden.
    public int colNumber = 0; //Nummer der Spalte in der die Änderung stattgefunden hat.
    public int rowNumber = 0; //Nummer der Zeile in der die Änderung stattgefunden hat.
    public String changeMade = null; //Änderungen in der Zelle

    public CORE() throws InterruptedException {

        while (dbload == false) {
            try {
                this.dbload = true;
                this.luser = JOptionPane.showInputDialog("Mit welchem Benutzer möchten sie sich anmelden?");
                if (luser == null)
                    System.exit(0);
                this.lpwd = JOptionPane.showInputDialog("Benutzerpasswort eintragen (...falls vorhanden)");
                if (lpwd == null)
                    System.exit(0);
                this.adb = "tutorial";
//                this.adb = JOptionPane.showInputDialog("Bitte den Namen der zu öffnenden Datenbank angeben!");
//                if (adb == null)
//                    System.exit(0);
                Class.forName("com.mysql.jdbc.Driver");
                String s = "jdbc:mysql://localhost/";
                s = s + adb;
                con = DriverManager.getConnection(s, luser, lpwd);
            } catch (SQLException ex) {
                this.dbload = false;
                Logger.getLogger(CORE.class.getName());
                JOptionPane.showMessageDialog(null, "Fehler beim ÖPffnen der Datenbank: " + ex.getMessage());
            } catch (ClassNotFoundException ex) {
                this.dbload = false;
                Logger.getLogger(CORE.class.getName());
                JOptionPane.showMessageDialog(null, "Treiberklasse nicht gefunden: " + ex.getMessage());
                System.exit(0);
            }
        }

        // SQL Abfragen ausführen um die grundsätzlichen Daten zu bekommen.
        sql = new Sql(this);
        // Starte die GUI
        new MainWindow(this).setVisible(true);
    }
}
